Класичні методи шифрування. Шифр з автоключем

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2010
Тип роботи:
Лабораторна робота
Предмет:
Методи та засоби криптологічних перетворень
Група:
ІБ – 44

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра ЗІ  Лабороторна робота №1 з курсу «Методи і засоби криптологічних перетворень» на тему: «Класичні методи шифрування. Шифр з автоключем» Мета роботи: ознайомитися з класичними методами шифрування (шифр простої заміни, поліграмні, поліалфавітні шифри, шифрування блоками, шифри перестановки). Завдання: Написати програму на мові програмування С/С++ для реалізації методу шифрування/дешифрування відкритого тексту за допомогою шифру з автоключем (довжина ключа – 3). Короткі теоретичні відомості Шифр з автоключем відноситься до класу полі алфавітних шифрів і ґрунтується на ідеях Віженера і Кардано. Подібно до шифру Віженера, криптотекст отримують сумуванням відкритого тексту із послідовністю букв такої ж довжини. Проте цю послідовність записують дещо інакше, ніж у шифрі Віженера – спочатку записують ключ, а справа до нього дописують початковий відрізок самого відкритого тексту. Розглянемо це на прикладі: БОРОНІТЬКОРОЛІВНУВІДВОРОГІВ + КЛЮЧБОРОНІТЬКОРОЛІВНУВІДВОР ЛАОЇОЩЗЛЮЩЗЛЩЩТВДЙЙТХРЮУДЩТ Відкритий текст і криптотекст у шифрі з автоключем записуються у одному і тому ж алфавіті. Для знаходження криптотексту зручно користуватися таблицею Віженера:  На відміну від шифру простої заміни, при використанні шифру з автоключем, однаковим буквам у відкритому тексті можуть відповідати різні букви у криптотексті. Ця обставина безперечно ускладнює частотний аналіз. Частотний аналіз шифру з автоключем ґрунтується на частотному аналізі шифру Віженера. Розглянемо його детальніше на прикладі  Шифр Віженера влаштований так, що при довжині ключа 4, кожна з 4 підпослідовностей відкритого тексту перетворюється до деякого шифру зсуву (на 14, 15, 31 та 27 позицій). За умови, що текст досить довгий, всі чотири довжини зсувів знаходяться стандартним підрахунком частот букв у відповідних підпослідовностях криптотексту. Якщо прискіпливо подивитися на текст, то можна побачити, що триграма аої зустрічається тричі, а біграма ца – двічі. Це означає, що у відкритий текст в відповідних місцях входять одна і та ж сама триграма і біграма (оро та ів). Це означає, що відстань між двома однаковими поліграмами відкритого тексту кратна довжині ключа. Відстані між різними входженнями триграми аої дорівнюють 8 і 12. Довжина ключа має ділити обидва ці числа, тобто вона дорівнює 1, 2 або 4 – залишається лише перепробувати три можливі варіанти. Текст програми #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <math.h> void decrypting(char kod[],char al[],char key[],char encrypt[]) {int k1,k2,k;int i,j;int c1,c2;i=0;k1=0;k2=0; for (i=0;i<30;i++) {encrypt[i]=0;} for (i=0;kod[i]!='\0';i++) {c1=kod[i];c2=key[i]; for (k=0;k<=51;k++) { if (c1==al[k]) k1=k;} for (k=0;k<=25;k++) { if (c2==al[k]) k2=k;} encrypt[i]=al[k1-k2]; } } void encrypting(char sl[],char al[],char key[],char kod[]) {int k1,k2,k;int i,j;int c1,c2;i=0;k1=0;k2=0; for (i=0;i<30;i++) {kod[i]=0;} for (i=0;sl[i]!='\0';i++) {c1=sl[i];c2=key[i]; for (k=0;k<=25;k++) { if (c1==al[k]) k1=k;} for (k=0;k<=25;k++) { if (c2==al[k]) k2=k;} kod[i]=al[k1+k2]; }} void main() { clrscr(); char alfavit[]="abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"; char opentext[]="sogodnisereda"; char key[]="popsogodniser"; char cryptotext[]="hcvgrtwvrzwhr"; char encrypted[30]; char decrypted [30]; int i ; for (i=0;i<30;i++) {encrypted[i]=0;decrypted[i]=0;} encrypting(opentext,alfavit,key,encrypted); decrypting(cryptotext,alfavit,key,decrypted); printf("\n cryptotext :"); printf("%s",encrypted); printf("\n opentext :"); printf("%s",decrypted); getch(); } Результат виконання програми  Блок-схема підпрограми дешифрування (decrypting) ні так ні так Блок-схема підпрограми шифрування (encrypting) ні так ні ...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини